Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Coins deprecation #16131

Merged
merged 5 commits into from
Jan 28, 2025
Merged

Coins deprecation #16131

merged 5 commits into from
Jan 28, 2025

Conversation

MiroslavProchazka
Copy link
Contributor

@MiroslavProchazka MiroslavProchazka commented Jan 2, 2025

As of February 2025, Trezor Suite will discontinue support for Dash, Bitcoin Gold, DigiByte, Namecoin, and Vertcoin. Users are advised to migrate their funds to alternative wallets to ensure continued access and security. The coins will still be supported on the FW level, so users can still access them using third party wallets.

Proposed Timeline:

  • February Suite Release: This version of Suite will no longer support the affected coins. However, users can still use older versions of Suite to access their coins.
  • July 2025: The BEs will be turned off. From this point forward, third-party apps will be the only way to access the coins.

I will divide the commits by environment (desktop/native) to make code review easier.

Please read the following before conducting the code review:

  • Since the coins will still be supported by the firmware and third-party apps, we should maintain support at the Connect level. Similarly, we will continue support in blockchain-link and utxo-lib.
  • For now, we have decided to keep these coins in Trading (users will need to use external addresses for this), so we need to retain the Address Validator as well.
  • We need to create a migration for users with remembered wallets.

Given the points above, I have prepared only basic deprecation that mainly affects NetworksConfig. Everything else (tests, icons, etc.) will remain unchanged until we decide to disable trading options and/or turn off the backends.

Todo:

  • In case that the coins will be still available for trading (to external wallets), can we delete their icons, names in messages.ts and other mentions in general files?
  • Should I also delete all tests mentioning those coins?
  • As some of the coins files needs to stay in the codespace (address validator, blockchain-link, connect etc.), it would be wise to determinate minimal scope for just Suite deprecation - will this be just NetworksConfig?
  • Adjust coins.ts
  • Adjust /trezor-suite/suite-common/suite-constants/src/protocol.ts
  • Create migration for users with remembered wallet - Suite
  • Create migration for users with remembered wallet - Suite lite
  • Create migration for migrateEnabledDiscoveryNetworkSymbols - discovery

This pull request includes significant changes related to the removal of support for several cryptocurrencies across multiple files. The most important changes include updating the LegacyNetworkSymbol type, modifying protocol definitions, and removing network configurations and symbols.

Removal of support for specific cryptocurrencies:

@MiroslavProchazka MiroslavProchazka changed the title chore(suite): basic deprecation on suite level Coins deprecation (WIP) Jan 2, 2025
@MiroslavProchazka MiroslavProchazka mentioned this pull request Jan 2, 2025
6 tasks
Copy link

github-actions bot commented Jan 2, 2025

🚀 Expo preview is ready!

  • Project → trezor-suite-preview
  • Platforms → android, ios
  • Scheme → trezorsuitelite
  • Runtime Version → 23
  • More info

Learn more about 𝝠 Expo Github Action

@@ -78,9 +58,7 @@ export const filterBlacklistedNetworks = (
);

export const portfolioTrackerMainnets = sortNetworks(
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If I see correctly, if we remove the portfolio blacklist, we can remove portfolioTrackerMainnets and getPortfolioTrackerTestnets completely and use networkSymbolsWhitelistMap.mainnets and networkSymbolsWhitelistMap.testnets instead, wdyt?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to create issue for this

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In here - #16683

@@ -18,12 +18,7 @@ type NetworkSymbol =
| 'etc'
| 'xrp'
| 'bch'
| 'btg'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should keep those in this migration

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes. maybe there should be migration removing target deprecated coins accounts from state as well. but its not that big deal. it can stay there forever and nothing will probably ever happen

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will prepare migration for users with remembered wallet.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

@MiroslavProchazka MiroslavProchazka requested a review from a team January 3, 2025 13:58
@MiroslavProchazka MiroslavProchazka force-pushed the chore/coins-deprecation branch 6 times, most recently from 50973b7 to 0405953 Compare January 9, 2025 15:41
@MiroslavProchazka MiroslavProchazka marked this pull request as ready for review January 9, 2025 15:42
@MiroslavProchazka MiroslavProchazka force-pushed the chore/coins-deprecation branch 4 times, most recently from 22960bc to bd9da1f Compare January 9, 2025 16:01
@MiroslavProchazka MiroslavProchazka changed the title Coins deprecation (WIP) Coins deprecation Jan 9, 2025
Copy link
Contributor

@marekrjpolak marekrjpolak left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Apart from mentioned, it looks good (= same as e.g. tgor deprecation).

@MiroslavProchazka MiroslavProchazka force-pushed the chore/coins-deprecation branch 2 times, most recently from c9c3719 to d76c9c1 Compare January 25, 2025 18:57
@MiroslavProchazka
Copy link
Contributor Author

MiroslavProchazka commented Jan 25, 2025

You forgot to remove icons from suite-common/icons, suite-common/icons-deprecated packages

As this affects additional files and tests and it is not necessary for the deprecation, I will leave it for later cleanup together with BE deprecation of these coins

@MiroslavProchazka MiroslavProchazka force-pushed the chore/coins-deprecation branch 3 times, most recently from fa490fd to 3aa96f8 Compare January 25, 2025 22:49
chore(suite-native): basic deprecation on suite lite level
Copy link
Contributor

@vytick vytick left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good job 👍. I have tested it and it works as expected 🦾 .

Please, create issue for redundant portfolioTrackerMainnets and remove that log as you discussed in comments

Copy link
Member

@matejkriz matejkriz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good job 👏 The only issue is that you don't remove enough coins, I would delete a few more 😉

One nitpick is that there is missing migration for graph state (we stored the preferred time range per coin), but it's not deleted properly even if you just disable any coin, so I would keep it as it is. It is quite hard to filter those and it's just a small data, most users will not have it anyway...)

Works as expected, I was checking the redux state after migration from develop to this branch.

@vytick vytick merged commit 366cb09 into develop Jan 28, 2025
35 checks passed
@vytick vytick deleted the chore/coins-deprecation branch January 28, 2025 18:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: 🤝 Needs QA
Development

Successfully merging this pull request may close these issues.

9 participants